package cn.tsyz.local.util;

import cn.tsyz.local.modules.user.model.User;

/**
 * 用户上下文持有者，使用ThreadLocal存储当前用户信息
 */
public class UserContextHolder {

    private static final ThreadLocal<User> USER_HOLDER = new ThreadLocal<>();

    /**
     * 设置当前用户
     */
    public static void setUser(User user) {
        USER_HOLDER.set(user);
    }

    /**
     * 获取当前用户
     */
    public static User getCurrentUser() {
        return USER_HOLDER.get();
    }


    /**
     * 获取当前用户名
     */
    public static String getCurrentUsername() {
        User user = getCurrentUser();
        return user != null ? user.getUsername() : null;
    }

    /**
     * 清除当前用户信息
     */
    public static void clear() {
        USER_HOLDER.remove();
    }
}
